import Vue from "vue"

//注册全局的自定义指令  v-longpress
Vue.directive("longpress",{
    bind(el,binding,vNode){
      if(typeof binding.value!="function"){
        throw new Error("v-longpress后面要跟一个方法");
        return;
      }
      //对当前的这个元素进行事件监听 
      //这个是触摸开始的方法
      let timerId=null;
      let ts=(event)=>{
        if(timerId==null){
          timerId = setTimeout(() => {
            //在这里要干一件事情
            binding.value(event);
          }, 1000);
        }
      }
      
      //触摸结束的方法
      let te=(event)=>{
        if(timerId!=null){
          clearTimeout(timerId);
          timerId=null;
        }
      }
  
      el.addEventListener("touchstart",ts);
      el.addEventListener("touchend",te);
      el.addEventListener("touchmove",te);
      el.addEventListener("touchcancel",te);
    }
  });